ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum |
您所在的位置:网站首页 › purple music › ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum |
ActionDispatch::RemoteIp::IpSpoofAttackError at /png/drum-kit
IP spoofing attack?! HTTP_CLIENT_IP="136.0.186.122" HTTP_X_FORWARDED_FOR="47.241.63.203"
Ruby
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in calculate_ip, line 136
Web
GET www.pixelsquid.com/png/drum-kit
Jump to:
GET
POST
Cookies
ENV
Traceback (innermost first)
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in calculate_ip
# right one after the fact. Since we have no idea, if we are concerned
# about IP spoofing we need to give up and explode. (If you're not
# concerned about IP spoofing you can turn the +ip_spoofing_check+
# option off.)
should_check_ip = @check_ip && client_ips.last && forwarded_ips.last
if should_check_ip && !forwarded_ips.include?(client_ips.last)
# We don't know which came from the proxy, and which from the user
raise IpSpoofAttackError, "IP spoofing attack?! " \...
"HTTP_CLIENT_IP=#{@req.client_ip.inspect} " \
"HTTP_X_FORWARDED_FOR=#{@req.x_forwarded_for.inspect}"
end
# We assume these things about the IP headers:
#
# - X-Forwarded-For will be a list of IPs, one per proxy, or blank
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in to_s
# If every single IP option is in the trusted list, just return REMOTE_ADDR
filter_proxies(ips).first || remote_addr
end
# Memoizes the value returned by #calculate_ip and returns it for
# ActionDispatch::Request to use.
def to_s
@ip ||= calculate_ip...
end
private
def ips_from(header) # :doc:
return [] unless header
# Split the comma-separated list into an array of strings.
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/http/request.rb: in remote_ip
def ip
@ip ||= super
end
# Returns the IP address of client as a +String+,
# usually set by the RemoteIp middleware.
def remote_ip
@remote_ip ||= (get_header("action_dispatch.remote_ip") || ip).to_s...
end
def remote_ip=(remote_ip)
set_header "action_dispatch.remote_ip".freeze, remote_ip
end
ACTION_DISPATCH_REQUEST_ID = "action_dispatch.request_id".freeze # :nodoc:
/var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in started_request_message
end
# Started GET "/session/new" for 127.0.0.1 at 2012-09-26 14:51:42 -0700
def started_request_message(request) # :doc:
'Started %s "%s" for %s at %s' % [
request.request_method,
request.filtered_path,
request.remote_ip,...
Time.now.to_default_s ]
end
def compute_tags(request) # :doc:
@taggers.collect do |tag|
case tag
when Proc
/var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in block in call_app
end
private
def call_app(request, env) # :doc:
instrumenter = ActiveSupport::Notifications.instrumenter
instrumenter.start "request.action_dispatch", request: request
logger.info { started_request_message(request) }...
status, headers, body = @app.call(env)
body = ::Rack::BodyProxy.new(body) { finish(request) }
[status, headers, body]
rescue Exception
finish(request)
raise
ensure
/usr/lib/ruby/2.7.0/logger.rb: in add
return true
end
if progname.nil?
progname = @progname
end
if message.nil?
if block_given?
message = yield...
else
message = progname
progname = @progname
end
end
@logdev.write(
format_message(format_severity(severity), Time.now, progname, message))
/usr/lib/ruby/2.7.0/logger.rb: in info
# program name (which you can do with #progname= as well).
#
# === Return
#
# See #add.
#
def info(progname = nil, &block)
add(INFO, nil, progname, &block)...
end
#
# Log a +WARN+ message.
#
# See #info for more information.
#
/var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in call_app
end
private
def call_app(request, env) # :doc:
instrumenter = ActiveSupport::Notifications.instrumenter
instrumenter.start "request.action_dispatch", request: request
logger.info { started_request_message(request) }...
status, headers, body = @app.call(env)
body = ::Rack::BodyProxy.new(body) { finish(request) }
[status, headers, body]
rescue Exception
finish(request)
raise
ensure
/var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in block in call
@taggers = taggers || []
end
def call(env)
request = ActionDispatch::Request.new(env)
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }...
else
call_app(request, env)
end
end
private
/var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/tagged_logging.rb: in block in tagged
logger.formatter.extend Formatter
logger.extend(self)
end
delegate :push_tags, :pop_tags, :clear_tags!, to: :formatter
def tagged(*tags)
formatter.tagged(*tags) { yield self }...
end
def flush
clear_tags!
super if defined?(super)
end
end
/var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/tagged_logging.rb: in tagged
# This method is invoked when a log event occurs.
def call(severity, timestamp, progname, msg)
super(severity, timestamp, progname, "#{tags_text}#{msg}")
end
def tagged(*tags)
new_tags = push_tags(*tags)
yield self...
ensure
pop_tags(new_tags.size)
end
def push_tags(*tags)
tags.flatten.reject(&:blank?).tap do |new_tags|
current_tags.concat new_tags
/var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/tagged_logging.rb: in tagged
logger.formatter.extend Formatter
logger.extend(self)
end
delegate :push_tags, :pop_tags, :clear_tags!, to: :formatter
def tagged(*tags)
formatter.tagged(*tags) { yield self }...
end
def flush
clear_tags!
super if defined?(super)
end
end
/var/lib/gems/2.7.0/gems/railties-5.2.8.1/lib/rails/rack/logger.rb: in call
@taggers = taggers || []
end
def call(env)
request = ActionDispatch::Request.new(env)
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }...
else
call_app(request, env)
end
end
private
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/remote_ip.rb: in call
# Since the IP address may not be needed, we store the object here
# without calculating the IP to keep from slowing down the majority of
# requests. For those requests that do need to know the IP, the
# GetIp#calculate_ip method will calculate the memoized client IP address.
def call(env)
req = ActionDispatch::Request.new env
req.remote_ip = GetIp.new(req, check_ip, proxies)
@app.call(req.env)...
end
# The GetIp class exists as a way to defer processing of the request data
# into an actual IP address. If the ActionDispatch::Request#remote_ip method
# is called, this class will calculate the value and then memoize it.
class GetIp
def initialize(req, check_ip, proxies)
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/client_user_id.rb: in call
class ClientUserID
def initialize(app, *args)
@app = app
end
def call(env)
Thread.current[:current_request_client_user_id] = env['HTTP_X_CLIENT_USER_ID']
@app.call(env)...
ensure
Thread.current[:current_request_client_user_id] = nil
end
end
end
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/client_external_user_id.rb: in call
class ClientExternalUserID
def initialize(app, *args)
@app = app
end
def call(env)
Thread.current[:current_request_client_external_user_id] = env['HTTP_X_CLIENT_EXTERNAL_USER_ID']
@app.call(env)...
ensure
Thread.current[:current_request_client_external_user_id] = nil
end
end
end
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/client_uid.rb: in call
class ClientUID
def initialize(app, *args)
@app = app
end
def call(env)
Thread.current[:current_request_client_uid] = env['HTTP_X_CLIENT_UID']
@app.call(env)...
ensure
Thread.current[:current_request_client_uid] = nil
end
end
end
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/keymaster_organization_code.rb: in call
class KeymasterOrganizationCode
def initialize(app, *args)
@app = app
end
def call(env)
Thread.current[:logpal_current_organization_code] = env['keymaster_client.organization_code']
@app.call(env)...
ensure
Thread.current[:logpal_current_organization_code] = nil
end
end
end
end
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/log_pal-4.2.2/lib/log_pal/middleware/rails/request_id.rb: in call
class RequestId
def initialize(app, *args)
@app = app
end
def call(env)
Thread.current[:current_request_uuid] = env['action_dispatch.request_id']
@app.call(env)...
ensure
Thread.current[:current_request_uuid] = nil
end
end
end
end
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/request_store-1.5.1/lib/request_store/middleware.rb: in call
def initialize(app)
@app = app
end
def call(env)
RequestStore.begin!
status, headers, body = @app.call(env)...
body = Rack::BodyProxy.new(body) do
RequestStore.end!
RequestStore.clear!
end
returned = true
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/request_id.rb: in call
def initialize(app)
@app = app
end
def call(env)
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }...
end
private
def make_request_id(request_id)
if request_id.presence
request_id.gsub(/[^\w\-@]/, "".freeze).first(255)
else
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/app/lib/request_client_uid.rb: in call
def initialize(app, *args)
@app = app
end
def call(env)
request = ActionDispatch::Request.new(env)
env['HTTP_X_CLIENT_UID'] = request.cookie_jar.signed[:client_uid]
@app.call(env)...
end
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/method_override.rb: in call
method = method_override(env)
if HTTP_METHODS.include?(method)
env[RACK_METHODOVERRIDE_ORIGINAL_METHOD] = env[REQUEST_METHOD]
env[REQUEST_METHOD] = method
end
end
@app.call(env)...
end
def method_override(env)
req = Request.new(env)
method = method_override_param(req) ||
env[HTTP_METHOD_OVERRIDE_HEADER]
begin
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/runtime.rb: in call
@app = app
@header_name = HEADER_NAME
@header_name += "-#{name}" if name
end
def call(env)
start_time = Utils.clock_time
status, headers, body = @app.call(env)...
headers = Utils::HeaderHash[headers]
request_time = Utils.clock_time - start_time
unless headers.key?(@header_name)
headers[@header_name] = FORMAT_STRING % request_time
end
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/activesupport-5.2.8.1/lib/active_support/cache/strategy/local_cache_middleware.rb: in call
def new(app)
@app = app
self
end
def call(env)
LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
response = @app.call(env)...
response[2] = ::Rack::BodyProxy.new(response[2]) do
LocalCacheRegistry.set_cache_for(local_cache_key, nil)
end
cleanup_on_body_close = true
response
rescue Rack::Utils::InvalidParameterError
[400, {}, []]
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/actionpack-5.2.8.1/lib/action_dispatch/middleware/executor.rb: in call
def initialize(app, executor)
@app, @executor = app, executor
end
def call(env)
state = @executor.run!(reset: true)
begin
response = @app.call(env)...
returned = response e
exception_string = dump_exception(e)
env[RACK_ERRORS].puts(exception_string)
env[RACK_ERRORS].flush
if accepts_html?(env)
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/common_logger.rb: in call
# will not be logged, so if exception handling middleware are used,
# they should be loaded after this middleware. Additionally, because
# the logging happens after the request body has been fully sent, any
# exceptions raised during the sending of the response body will
# cause the request not to be logged.
def call(env)
began_at = Utils.clock_time
status, headers, body = @app.call(env)...
headers = Utils::HeaderHash[headers]
body = BodyProxy.new(body) { log(env, status, headers, began_at) }
[status, headers, body]
end
private
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/chunked.rb: in call
end
end
# If the rack app returns a response that should have a body,
# but does not have Content-Length or Transfer-Encoding headers,
# modify the response to use chunked Transfer-Encoding.
def call(env)
status, headers, body = @app.call(env)...
headers = HeaderHash[headers]
if chunkable_version?(env[SERVER_PROTOCOL]) &&
!STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i) &&
!headers[CONTENT_LENGTH] &&
!headers[TRANSFER_ENCODING]
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/rack-2.2.7/lib/rack/content_length.rb: in call
include Rack::Utils
def initialize(app)
@app = app
end
def call(env)
status, headers, body = @app.call(env)...
headers = HeaderHash[headers]
if !STATUS_WITH_NO_ENTITY_BODY.key?(status.to_i) &&
!headers[CONTENT_LENGTH] &&
!headers[TRANSFER_ENCODING]
obody = body
/var/lib/gems/2.7.0/gems/newrelic_rpm-8.14.0/lib/new_relic/agent/instrumentation/middleware_tracing.rb: in call
name: options[:transaction_name],
category: category,
options: options
)
events.notify(:before_call, env) if first_middleware
result = target == self ? traced_call(env) : target.call(env)...
if first_middleware
capture_response_attributes(state, result)
events.notify(:after_call, env, result)
end
result
/var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in process_client
env["rack.early_hints"] = lambda do |headers|
e103_response_write(client, headers)
end
end
env["rack.after_reply"] = []
status, headers, body = @app.call(env)...
begin
return if @request.hijacked?
if 100 == status.to_i
e100_response_write(client, env)
status, headers, body = @app.call(env)
/var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in worker_loop
begin
reopen = reopen_worker_logs(worker.nr) if reopen
worker.tick = time_now.to_i
while sock = ready.shift
# Unicorn::Worker#kgio_tryaccept is not like accept(2) at all,
# but that will return false
if client = sock.kgio_tryaccept
process_client(client)...
worker.tick = time_now.to_i
end
break if reopen
end
# timeout so we can .tick and keep parent from SIGKILL-ing us
worker.tick = time_now.to_i
/var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in spawn_missing_workers
worker = Unicorn::Worker.new(worker_nr)
before_fork.call(self, worker)
pid = @worker_exec ? worker_spawn(worker) : fork
unless pid
after_fork_internal
worker_loop(worker)...
exit
end
@workers[pid] = worker
worker.atfork_parent
end
rescue => e
/var/lib/gems/2.7.0/gems/unicorn-6.1.0/lib/unicorn/http_server.rb: in start
# This unfortunately has the side effect of clobbering valid PID if
# we upgrade and the upgrade breaks during preload_app==true && build_app!
self.pid = config[:pid]
build_app! if preload_app
bind_new_listeners!
spawn_missing_workers...
self
end
# replaces current listener set with +listeners+. This will
# close the socket if it will not exist in the new listener set
def listeners=(listeners)
cur_names, dead_names = [], []
/var/lib/gems/2.7.0/gems/unicorn-6.1.0/bin/unicorn: in
:unicorn_options => options,
:app => app,
:daemonize => rackup_opts[:daemonize],
})
end
Unicorn::Launcher.daemonize!(options) if rackup_opts[:daemonize]
Unicorn::HttpServer.new(app, options).start.join...
/usr/local/bin/unicorn: in load
if str and Gem::Version.correct?(str)
version = str
ARGV.shift
end
end
if Gem.respond_to?(:activate_bin_path)
load Gem.activate_bin_path('unicorn', 'unicorn', version)...
else
gem "unicorn", version
load Gem.bin_path("unicorn", "unicorn", version)
end
/usr/local/bin/unicorn: in
if str and Gem::Version.correct?(str)
version = str
ARGV.shift
end
end
if Gem.respond_to?(:activate_bin_path)
load Gem.activate_bin_path('unicorn', 'unicorn', version)...
else
gem "unicorn", version
load Gem.bin_path("unicorn", "unicorn", version)
end
Request information
GET
No GET data. POSTNo POST data. COOKIESNo cookie data. Rack ENV Variable Value HTTP_ACCEPT "*/*" HTTP_CLIENT_IP "136.0.186.122" HTTP_CLOUDFRONT_FORWARDED_PROTO "https" HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER "true" HTTP_CLOUDFRONT_IS_MOBILE_VIEWER "false" HTTP_CLOUDFRONT_IS_SMARTTV_VIEWER "false" HTTP_CLOUDFRONT_IS_TABLET_VIEWER "false" HTTP_CLOUDFRONT_VIEWER_ASN "45102" HTTP_CLOUDFRONT_VIEWER_COUNTRY "SG" HTTP_CONNECTION "close" HTTP_HOST "www.pixelsquid.com" HTTP_REFERER "http://www.baidu.com/" HTTP_USER_AGENT "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C; .NET4.0E)" HTTP_VERSION "HTTP/1.0" HTTP_VIA "1.1 5ba1fc6b25fbcd91520a550358bd4bac.cloudfront.net (CloudFront)" HTTP_X_AMZ_CF_ID "GugjabgpkWpHUvq6DtoUkEJiJ8gfagJtjsxYtzPtdAaNVSCi97Ls9g==" HTTP_X_CLIENT_UID nil HTTP_X_FORWARDED_FOR "47.241.63.203" HTTP_X_FORWARDED_HOST "www.pixelsquid.com" HTTP_X_FORWARDED_PORT "443" HTTP_X_FORWARDED_PROTO "https" HTTP_X_FORWARDED_SCHEME "https" HTTP_X_ORIGINAL_FORWARDED_FOR "136.0.186.122, 47.241.63.203" HTTP_X_REAL_IP "47.241.63.203" HTTP_X_REQUEST_ID "8d4fe5c94772cd3109f944db578b96d9" HTTP_X_SCHEME "https" ORIGINAL_FULLPATH "/png/drum-kit" ORIGINAL_SCRIPT_NAME "" PATH_INFO "/png/drum-kit" QUERY_STRING "" REMOTE_ADDR "127.0.0.1" REQUEST_METHOD "GET" REQUEST_PATH "/png/drum-kit" REQUEST_URI "/png/drum-kit" ROUTES_10940_SCRIPT_NAME "" SCRIPT_NAME "" SERVER_NAME "www.pixelsquid.com" SERVER_PORT "443" SERVER_PROTOCOL "HTTP/1.0" SERVER_SOFTWARE "Unicorn 6.1.0" action_dispatch.authenticated_encrypted_cookie_salt "authenticated encrypted cookie" action_dispatch.backtrace_cleaner # action_dispatch.content_security_policy nil action_dispatch.content_security_policy_nonce_generator nil action_dispatch.content_security_policy_report_only false action_dispatch.cookies #"GET", "REQUEST_PATH"=>"/png/drum-kit", "PATH_INFO"=>"/png/drum-kit", "REQUEST_URI"=>"/png/drum-kit", "SERVER_PROTOCOL"=>"HTTP/1.0", "HTTP_VERSION"=>"HTTP/1.0", "HTTP_HOST"=>"www.pixelsquid.com", "HTTP_CONNECTION"=>"close", "HTTP_X_REQUEST_ID"=>"8d4fe5c94772cd3109f944db578b96d9", "HTTP_X_REAL_IP"=>"47.241.63.203", "HTTP_X_FORWARDED_FOR"=>"47.241.63.203", "HTTP_X_FORWARDED_HOST"=>"www.pixelsquid.com", "HTTP_X_FORWARDED_PORT"=>"443", "HTTP_X_FORWARDED_PROTO"=>"https", "HTTP_X_FORWARDED_SCHEME"=>"https", "HTTP_X_SCHEME"=>"https", "HTTP_X_ORIGINAL_FORWARDED_FOR"=>"136.0.186.122, 47.241.63.203", "HTTP_USER_AGENT"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C; .NET4.0E)", "HTTP_X_AMZ_CF_ID"=>"GugjabgpkWpHUvq6DtoUkEJiJ8gfagJtjsxYtzPtdAaNVSCi97Ls9g==", "HTTP_VIA"=>"1.1 5ba1fc6b25fbcd91520a550358bd4bac.cloudfront.net (CloudFront)", "HTTP_ACCEPT"=>"*/*", "HTTP_REFERER"=>"http://www.baidu.com/", "HTTP_CLIENT_IP"=>"136.0.186.122", "HTTP_CLOUDFRONT_IS_MOBILE_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_TABLET_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_SMARTTV_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER"=>"true", "HTTP_CLOUDFRONT_VIEWER_COUNTRY"=>"SG", "HTTP_CLOUDFRONT_FORWARDED_PROTO"=>"https", "HTTP_CLOUDFRONT_VIEWER_ASN"=>"45102", "rack.url_scheme"=>"https", "SERVER_NAME"=>"www.pixelsquid.com", "SERVER_PORT"=>"443", "QUERY_STRING"=>"", "rack.input"=>#, "unicorn.socket"=>#, "rack.hijack"=>#, "rack.errors"=>#, "rack.multiprocess"=>true, "rack.multithread"=>false, "rack.run_once"=>false, "rack.version"=>[1, 2], "rack.hijack?"=>true, "SCRIPT_NAME"=>"", "SERVER_SOFTWARE"=>"Unicorn 6.1.0", "rack.logger"=>#, "rack.after_reply"=>[], "newrelic.transaction_started"=>true, "rack.tempfiles"=>[], "action_dispatch.parameter_filter"=>[:password, :salt, :password, :salt], "action_dispatch.redirect_filter"=>[], "action_dispatch.secret_token"=>nil, "action_dispatch.secret_key_base"=>"babd3712c0fb31c13668982898fb7df5b8515a67c9040b747c9dfdeef3b2a84ec5740430f9835210c32ff8d91909db9773eb4eadb49b5061dfb7e1970b8539c1", "action_dispatch.show_exceptions"=>true, "action_dispatch.show_detailed_exceptions"=>false, "action_dispatch.logger"=>#, "action_dispatch.backtrace_cleaner"=>#, "action_dispatch.key_generator"=>#, "action_dispatch.http_auth_salt"=>"http authentication", "action_dispatch.signed_cookie_salt"=>"signed cookie", "action_dispatch.encrypted_cookie_salt"=>"encrypted cookie", "action_dispatch.encrypted_signed_cookie_salt"=>"signed encrypted cookie", "action_dispatch.authenticated_encrypted_cookie_salt"=>"authenticated encrypted cookie", "action_dispatch.use_authenticated_cookie_encryption"=>false, "action_dispatch.encrypted_cookie_cipher"=>nil, "action_dispatch.signed_cookie_digest"=>nil, "action_dispatch.cookies_serializer"=>:hybrid, "action_dispatch.cookies_digest"=>nil, "action_dispatch.cookies_rotations"=>#, "action_dispatch.content_security_policy"=>nil, "action_dispatch.content_security_policy_report_only"=>false, "action_dispatch.content_security_policy_nonce_generator"=>nil, "action_dispatch.routes"=>#, "ROUTES_10940_SCRIPT_NAME"=>"", "ORIGINAL_FULLPATH"=>"/png/drum-kit", "ORIGINAL_SCRIPT_NAME"=>"", "rack.request.cookie_hash"=>{}, "action_dispatch.cookies"=>#, "HTTP_X_CLIENT_UID"=>nil, "action_dispatch.request_id"=>"8d4fe5c94772cd3109f944db578b96d9", "action_dispatch.remote_ip"=>#, "rack.request.query_string"=>"", "rack.request.query_hash"=>{}}, @filtered_parameters=nil, @filtered_env=nil, @filtered_path=nil, @protocol=nil, @port=nil, @method=nil, @request_method=nil, @remote_ip=nil, @original_fullpath=nil, @fullpath=nil, @ip=nil>, @cookies={}, @committed=false, @signed=#ActiveSupport::MessageEncryptor::NullSerializer}, @rotations=[]>>> action_dispatch.cookies_digest nil action_dispatch.cookies_rotations # action_dispatch.cookies_serializer :hybrid action_dispatch.encrypted_cookie_cipher nil action_dispatch.encrypted_cookie_salt "encrypted cookie" action_dispatch.encrypted_signed_cookie_salt "signed encrypted cookie" action_dispatch.http_auth_salt "http authentication" action_dispatch.key_generator # action_dispatch.logger # action_dispatch.parameter_filter [:password, :salt, :password, :salt] action_dispatch.redirect_filter [] action_dispatch.remote_ip #"GET", "REQUEST_PATH"=>"/png/drum-kit", "PATH_INFO"=>"/png/drum-kit", "REQUEST_URI"=>"/png/drum-kit", "SERVER_PROTOCOL"=>"HTTP/1.0", "HTTP_VERSION"=>"HTTP/1.0", "HTTP_HOST"=>"www.pixelsquid.com", "HTTP_CONNECTION"=>"close", "HTTP_X_REQUEST_ID"=>"8d4fe5c94772cd3109f944db578b96d9", "HTTP_X_REAL_IP"=>"47.241.63.203", "HTTP_X_FORWARDED_FOR"=>"47.241.63.203", "HTTP_X_FORWARDED_HOST"=>"www.pixelsquid.com", "HTTP_X_FORWARDED_PORT"=>"443", "HTTP_X_FORWARDED_PROTO"=>"https", "HTTP_X_FORWARDED_SCHEME"=>"https", "HTTP_X_SCHEME"=>"https", "HTTP_X_ORIGINAL_FORWARDED_FOR"=>"136.0.186.122, 47.241.63.203", "HTTP_USER_AGENT"=>"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;Media Center PC 6.0; .NET4.0C; .NET4.0E)", "HTTP_X_AMZ_CF_ID"=>"GugjabgpkWpHUvq6DtoUkEJiJ8gfagJtjsxYtzPtdAaNVSCi97Ls9g==", "HTTP_VIA"=>"1.1 5ba1fc6b25fbcd91520a550358bd4bac.cloudfront.net (CloudFront)", "HTTP_ACCEPT"=>"*/*", "HTTP_REFERER"=>"http://www.baidu.com/", "HTTP_CLIENT_IP"=>"136.0.186.122", "HTTP_CLOUDFRONT_IS_MOBILE_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_TABLET_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_SMARTTV_VIEWER"=>"false", "HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER"=>"true", "HTTP_CLOUDFRONT_VIEWER_COUNTRY"=>"SG", "HTTP_CLOUDFRONT_FORWARDED_PROTO"=>"https", "HTTP_CLOUDFRONT_VIEWER_ASN"=>"45102", "rack.url_scheme"=>"https", "SERVER_NAME"=>"www.pixelsquid.com", "SERVER_PORT"=>"443", "QUERY_STRING"=>"", "rack.input"=>#, "unicorn.socket"=>#, "rack.hijack"=>#, "rack.errors"=>#, "rack.multiprocess"=>true, "rack.multithread"=>false, "rack.run_once"=>false, "rack.version"=>[1, 2], "rack.hijack?"=>true, "SCRIPT_NAME"=>"", "SERVER_SOFTWARE"=>"Unicorn 6.1.0", "rack.logger"=>#, "rack.after_reply"=>[], "newrelic.transaction_started"=>true, "rack.tempfiles"=>[], "action_dispatch.parameter_filter"=>[:password, :salt, :password, :salt], "action_dispatch.redirect_filter"=>[], "action_dispatch.secret_token"=>nil, "action_dispatch.secret_key_base"=>"babd3712c0fb31c13668982898fb7df5b8515a67c9040b747c9dfdeef3b2a84ec5740430f9835210c32ff8d91909db9773eb4eadb49b5061dfb7e1970b8539c1", "action_dispatch.show_exceptions"=>true, "action_dispatch.show_detailed_exceptions"=>false, "action_dispatch.logger"=>#, "action_dispatch.backtrace_cleaner"=>#, "action_dispatch.key_generator"=>#, "action_dispatch.http_auth_salt"=>"http authentication", "action_dispatch.signed_cookie_salt"=>"signed cookie", "action_dispatch.encrypted_cookie_salt"=>"encrypted cookie", "action_dispatch.encrypted_signed_cookie_salt"=>"signed encrypted cookie", "action_dispatch.authenticated_encrypted_cookie_salt"=>"authenticated encrypted cookie", "action_dispatch.use_authenticated_cookie_encryption"=>false, "action_dispatch.encrypted_cookie_cipher"=>nil, "action_dispatch.signed_cookie_digest"=>nil, "action_dispatch.cookies_serializer"=>:hybrid, "action_dispatch.cookies_digest"=>nil, "action_dispatch.cookies_rotations"=>#, "action_dispatch.content_security_policy"=>nil, "action_dispatch.content_security_policy_report_only"=>false, "action_dispatch.content_security_policy_nonce_generator"=>nil, "action_dispatch.routes"=>#, "ROUTES_10940_SCRIPT_NAME"=>"", "ORIGINAL_FULLPATH"=>"/png/drum-kit", "ORIGINAL_SCRIPT_NAME"=>"", "rack.request.cookie_hash"=>{}, "action_dispatch.cookies"=>#>>, "HTTP_X_CLIENT_UID"=>nil, "action_dispatch.request_id"=>"8d4fe5c94772cd3109f944db578b96d9", "action_dispatch.remote_ip"=>#, "rack.request.query_string"=>"", "rack.request.query_hash"=>{}}, @filtered_parameters=nil, @filtered_env=nil, @filtered_path=nil, @protocol=nil, @port=nil, @method=nil, @request_method=nil, @remote_ip=nil, @original_fullpath=nil, @fullpath=nil, @ip=nil>, @check_ip=true, @proxies=[#, #, #, #, #, #]> action_dispatch.request_id "8d4fe5c94772cd3109f944db578b96d9" action_dispatch.routes # action_dispatch.secret_key_base "babd3712c0fb31c13668982898fb7df5b8515a67c9040b747c9dfdeef3b2a84ec5740430f9835210c32ff8d91909db9773eb4eadb49b5061dfb7e1970b8539c1" action_dispatch.secret_token nil action_dispatch.show_detailed_exceptions false action_dispatch.show_exceptions true action_dispatch.signed_cookie_digest nil action_dispatch.signed_cookie_salt "signed cookie" action_dispatch.use_authenticated_cookie_encryption false newrelic.transaction_started true rack.after_reply [] rack.errors # rack.hijack # rack.hijack? true rack.input # rack.logger # rack.multiprocess true rack.multithread false rack.request.cookie_hash {} rack.request.query_hash {} rack.request.query_string "" rack.run_once false rack.tempfiles [] rack.url_scheme "https" rack.version [1, 2] unicorn.socket #You're seeing this error because you use Rack::ShowExceptions. |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |